package top.xbaoziplus.company.empty;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import top.xbaoziplus.company.converter.LocalDateTimeConverter;

/**
 * 
 * @TableName staff_info_view
 */
@TableName(value ="staff_info_view")
@Data
@ApiModel("用户的基本信息")
@ToString
@EqualsAndHashCode
@Accessors(chain = true)
public class UserInfo implements Serializable {
    /**
     * 工号
     */
    @ExcelProperty(value = "工号")
    @ApiModelProperty("工号")
    private Long jobId;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    @ApiModelProperty("姓名")
    private String name;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别")
    @ApiModelProperty("性别")
    private String gender;

    /**
     * 联系电话
     */
    @ExcelProperty(value = "联系电话")
    @ApiModelProperty("联系电话")
    private String telephone;

    /**
     * 权限：0表示普通用户，1表示管理员
     */
    @ExcelIgnore
    @ApiModelProperty("权限：0表示普通用户，1表示管理员")
    private Integer authority;

    /**
     * 住址
     */
    @ExcelProperty(value = "住址")
    @ApiModelProperty("住址")
    private String address;

    /**
     * 状态：0表示正常，1表示已删除
     */
    @ExcelIgnore
    @ApiModelProperty("状态：0表示正常，1表示已删除")
    private Integer status;

    /**
     * 入职时间
     */
    @ExcelProperty(converter = LocalDateTimeConverter.class, value = "入职时间")
    @ApiModelProperty("入职时间")
    private LocalDateTime createTime;

    /**
     * 密码
     */
    @ApiModelProperty("密码")
    @ExcelIgnore
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String password;

    /**
     * 状态：0表示正常 1表示删除
     */
    @ExcelIgnore
    @ApiModelProperty("账号状态：0表示正常 1表示删除")
    private Integer acStatus;

    /**
     * 工资数值
     */
    @ExcelProperty("工资")
    @ApiModelProperty("工资")
    private BigDecimal salary;

    /**
     * 所在职位
     */
    @ExcelProperty("所在职位")
    @ApiModelProperty("所在职位")
    private String positionName;

    /**
     * 职位id
     */
    @ExcelIgnore
    @ApiModelProperty("职位ID")
    @TableField(exist = false)
    private Integer positionId;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}